package com.gqj.meter.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.gqj.common.annotation.Excel;
import com.gqj.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import org.apache.poi.ss.usermodel.IndexedColors;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
import java.util.Date;

/**
 * 集中器对象 md__concentrator
 *
 * @author lxq
 * @date lxq-02-10
 */
public class MdConcentrator extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 集中器id
     */
    @ApiModelProperty("互感器id")
    private Long concentratorId;
    /**
     * rfid编号/条形码
     */
    @ApiModelProperty("rfid编号/条形码")
    @Excel(name = "条形码", headerBackgroundColor = IndexedColors.RED1, width = 25)
    private String rfidNo;
    /**
     * 资产编号
     */
    @ApiModelProperty("资产编号")
    @Excel(name = "资产编号", width = 25)
    private String meterNo;

    /**
     * 设备码
     */
    @ApiModelProperty(name = "设备码")
    @Excel(name = "设备码", width = 25)
    private String equipCode;

    /**
     * 设备名称
     */
    @ApiModelProperty(name = "设备名称")
    @Excel(name = "设备名称", width = 25)
    private String equipName;

    /**
     * 出厂编号
     */
    @ApiModelProperty("出厂编号")
    @Excel(name = "出厂编号", width = 25)
    private String madeNo;

    /**
     * 类型
     */
    @ApiModelProperty("类型")
    @Excel(name = "类型")
    private String typeCode;

    /**
     * 型号
     */
    @ApiModelProperty("型号")
    @Excel(name = "型号")
    private String modelCode;

    /**
     * 采集方式参见标准代码：采集终端通信类型
     */
    @ApiModelProperty("采集方式")
    @Excel(name = "采集方式")
    private String collMode;

    /**
     * 额定电压
     */
    @ApiModelProperty("额定电压")
    @Excel(name = "额定电压")
    private String rvCode;

    /**
     * 当前状态
     */
    @ApiModelProperty("当前状态")
    @Excel(name = "当前状态", dictType = "cur_status_code")
    private String curStatusCode;

    /**
     * 所在单位
     */
    @ApiModelProperty("所在单位")
    @Excel(name = "所在单位", width = 40)
    private String belongDept;

    /**
     * 到货日期
     */
    @ApiModelProperty("到货日期")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "到货日期", width = 30, dateFormat = "yyyy/MM/dd")
    private Date arrivalDate;

    /**
     * 生产批次
     */
    @ApiModelProperty("生产批次")
    @Excel(name = "生产批次")
    private String lotNo;

    /**
     * 招标批次
     */
    @ApiModelProperty("招标批次")
    @Excel(name = "招标批次")
    private String biddingNo;

    /**
     * 制造单位
     */
    @ApiModelProperty("制造单位")
    @Excel(name = "制造单位", width = 30)
    private String manufactrer;

    /**
     * 出厂日期
     */
    @ApiModelProperty("出厂日期")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "出厂日期", width = 30, dateFormat = "yyyy/MM/dd")
    private Date madeDate;

    /**
     * 是否附属电能表
     */
    @ApiModelProperty("是否附属电能表")
    @Excel(name = "是否附属电能表")
    private String attachedMeter;

    /**
     * 产权
     */
    @ApiModelProperty("产权")
    @Excel(name = "产权")
    private String prCode;

    /**
     * 上行通信信道，通讯方式
     */
    @ApiModelProperty("上行通信信道")
    @Excel(name = "上行通信信道")
    private String upChannelNo;

    /**
     * 下行通信信道，通讯方式
     */
    @ApiModelProperty("下行通信信道")
    @Excel(name = "下行通信信道")
    private String downChannelNo;

    /**
     * 通信规约，采用终端通信规约版本commProtocolVer
     */
    @ApiModelProperty("通信规约")
    @Excel(name = "通信规约")
    private String protocolCode;

    /**
     * 参比电流，采用电能表标定电流
     */
    @ApiModelProperty("参比电流")
    @Excel(name = "参比电流")
    private String referenceCurrentCode;

    /**
     * 参比电压，采用meterVolt
     */
    @ApiModelProperty("参比电压")
    @Excel(name = "参比电压")
    private String referenceVoltCode;

    /**
     * 接线方式，1单相、2三相三线、3三相四线
     */
    @ApiModelProperty("接线方式")
    @Excel(name = "接线方式")
    private String wiringMode;

    /**
     * 库房标识
     */
    @ApiModelProperty("库房标识")
    private Long whId;

    /**
     * 库区标识
     */
    @ApiModelProperty("库区标识")
    private Long whAreaId;

    /**
     * 存放区标识
     */
    @ApiModelProperty("存放区标识")
    private Long storeAreaId;

    /**
     * 储位标识
     */
    @ApiModelProperty("储位标识")
    private Long storeLocId;

    /**
     * 载波芯片厂商
     */
    @ApiModelProperty("载波芯片厂商")
    @Excel(name = "载波芯片厂商")
    private String carrierWaveChipManufacturer;

    /**
     * 载波频率范围
     */
    @ApiModelProperty("载波频率范围")
    @Excel(name = "载波频率范围")
    private String carrierWaveFreqScope;

    /**
     * 载波中心频点
     */
    @ApiModelProperty("载波中心频点")
    @Excel(name = "载波中心频点")
    private String carrierWaveCenterFreq;

    /**
     * 载波软件版本
     */
    @ApiModelProperty("载波软件版本")
    @Excel(name = "载波软件版本")
    private String carrierWaveVer;

    /**
     * 载波型号
     */
    @ApiModelProperty("载波型号")
    @Excel(name = "载波型号")
    private String carrierModel;

    /**
     * 载波类型
     */
    @ApiModelProperty("载波类型")
    @Excel(name = "载波类型")
    private String carrierWaveType;

    /**
     * 电能表标识
     */
    @ApiModelProperty("电能表标识")
    @Excel(name = "电能表标识")
    private Long meterId;

    /**
     * 订单类型
     */
    @ApiModelProperty("订单类型")
    @Excel(name = "订单类型")
    private String orderType;

    /**
     * 安装日期
     */
    @ApiModelProperty("安装日期")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "安装日期", width = 30, dateFormat = "yyyy/MM/dd")
    private Date instDate;

    /**
     * 拆除日期
     */
    @ApiModelProperty("拆除日期")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "拆除日期", width = 30, dateFormat = "yyyy/MM/dd")
    private Date rmvDate;

    /**
     * 检定日期
     */
    @ApiModelProperty("检定日期")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "检定日期", width = 30, dateFormat = "yyyy/MM/dd")
    private Date chkDate;

    /**
     * 报废日期
     */
    @ApiModelProperty("报废日期")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "报废日期", width = 30, dateFormat = "yyyy/MM/dd")
    private Date descardDate;

    /**
     * 资金来源
     */
    @ApiModelProperty("资金来源")
    @Excel(name = "资金来源")
    private String capitalSource;

    /**
     * 绑定模块条码
     */
    @ApiModelProperty("绑定模块条码")
    @Excel(name = "绑定模块条码", width = 25)
    private String moduleCode;

    /**
     * 库房编号
     */
    @ApiModelProperty("库房编号")
    private String whNo;

    /**
     * 库房名称
     */
    @ApiModelProperty("库房名称")
    private String whName;

    /**
     * 库区编号
     */
    @ApiModelProperty("库区编号")
    private String whAreaNo;
    /**
     * 库区名称
     */
    @ApiModelProperty("库区名称")
    private String whAreaname;
    /**
     * 存放区编号
     */
    @ApiModelProperty("存放区编号")
    private String storeAreaNo;

    /**
     * 存放区名称
     */
    @ApiModelProperty("存放区名称")
    private String storeAreaName;

    /**
     * 储位编号
     */
    @ApiModelProperty("储位编号")
    private String storeLocNo;

    /**
     * 储位名称
     */
    @ApiModelProperty("储位名称")
    private String storeLocName;

    /**
     * 集中器主键集合
     */
    @ApiModelProperty("集中器主键集合")
    private Long[] concentratorIds;

    @ApiModelProperty("业务状态")
    @Excel(name = "业务状态", dictType = "service_status", type = Excel.Type.IMPORT)
    private String serviceStatus;

    /**
     * 电能表主键集合
     */
    @ApiModelProperty("业务状态集合")
    private String[] serviceStatuss;

    public String getEquipCode() {
        return equipCode;
    }

    public void setEquipCode(String equipCode) {
        this.equipCode = equipCode;
    }

    public String getEquipName() {
        return equipName;
    }

    public void setEquipName(String equipName) {
        this.equipName = equipName;
    }

    public String[] getServiceStatuss() {
        return serviceStatuss;
    }

    public void setServiceStatuss(String[] serviceStatuss) {
        this.serviceStatuss = serviceStatuss;
    }

    public String getServiceStatus() {
        return serviceStatus;
    }

    public void setServiceStatus(String serviceStatus) {
        this.serviceStatus = serviceStatus;
    }

    public Long[] getConcentratorIds() {
        return concentratorIds;
    }

    public void setConcentratorIds(Long[] concentratorIds) {
        this.concentratorIds = concentratorIds;
    }

    public void setConcentratorId(Long concentratorId) {
        this.concentratorId = concentratorId;
    }

    public Long getConcentratorId() {
        return concentratorId;
    }

    public void setMeterNo(String meterNo) {
        this.meterNo = meterNo;
    }

    public String getMeterNo() {
        return meterNo;
    }

    public void setMadeNo(String madeNo) {
        this.madeNo = madeNo;
    }

    public String getMadeNo() {
        return madeNo;
    }

    public void setRfidNo(String rfidNo) {
        this.rfidNo = rfidNo;
    }

    @NotBlank(message = "条形码不能为空")
    @Size(min = 0, max = 50, message = "条形码长度不能超过50个字符")
    public String getRfidNo() {
        return rfidNo;
    }

    public void setTypeCode(String typeCode) {
        this.typeCode = typeCode;
    }

    public String getTypeCode() {
        return typeCode;
    }

    public void setModelCode(String modelCode) {
        this.modelCode = modelCode;
    }

    public String getModelCode() {
        return modelCode;
    }

    public void setCollMode(String collMode) {
        this.collMode = collMode;
    }

    public String getCollMode() {
        return collMode;
    }

    public void setRvCode(String rvCode) {
        this.rvCode = rvCode;
    }

    public String getRvCode() {
        return rvCode;
    }

    public void setCurStatusCode(String curStatusCode) {
        this.curStatusCode = curStatusCode;
    }

    public String getCurStatusCode() {
        return curStatusCode;
    }

    public void setBelongDept(String belongDept) {
        this.belongDept = belongDept;
    }

    public String getBelongDept() {
        return belongDept;
    }

    public void setArrivalDate(Date arrivalDate) {
        this.arrivalDate = arrivalDate;
    }

    public Date getArrivalDate() {
        return arrivalDate;
    }

    public void setLotNo(String lotNo) {
        this.lotNo = lotNo;
    }

    public String getLotNo() {
        return lotNo;
    }

    public void setBiddingNo(String biddingNo) {
        this.biddingNo = biddingNo;
    }

    public String getBiddingNo() {
        return biddingNo;
    }

    public void setManufactrer(String manufactrer) {
        this.manufactrer = manufactrer;
    }

    public String getManufactrer() {
        return manufactrer;
    }

    public void setMadeDate(Date madeDate) {
        this.madeDate = madeDate;
    }

    public Date getMadeDate() {
        return madeDate;
    }

    public void setAttachedMeter(String attachedMeter) {
        this.attachedMeter = attachedMeter;
    }

    public String getAttachedMeter() {
        return attachedMeter;
    }

    public void setPrCode(String prCode) {
        this.prCode = prCode;
    }

    public String getPrCode() {
        return prCode;
    }

    public void setUpChannelNo(String upChannelNo) {
        this.upChannelNo = upChannelNo;
    }

    public String getUpChannelNo() {
        return upChannelNo;
    }

    public void setDownChannelNo(String downChannelNo) {
        this.downChannelNo = downChannelNo;
    }

    public String getDownChannelNo() {
        return downChannelNo;
    }

    public void setProtocolCode(String protocolCode) {
        this.protocolCode = protocolCode;
    }

    public String getProtocolCode() {
        return protocolCode;
    }

    public void setReferenceVoltCode(String referenceVoltCode) {
        this.referenceVoltCode = referenceVoltCode;
    }

    public String getReferenceVoltCode() {
        return referenceVoltCode;
    }

    public void setReferenceCurrentCode(String referenceCurrentCode) {
        this.referenceCurrentCode = referenceCurrentCode;
    }

    public String getReferenceCurrentCode() {
        return referenceCurrentCode;
    }

    public void setWiringMode(String wiringMode) {
        this.wiringMode = wiringMode;
    }

    public String getWiringMode() {
        return wiringMode;
    }

    public void setWhId(Long whId) {
        this.whId = whId;
    }

    public Long getWhId() {
        return whId;
    }

    public void setWhAreaId(Long whAreaId) {
        this.whAreaId = whAreaId;
    }

    public Long getWhAreaId() {
        return whAreaId;
    }

    public void setStoreAreaId(Long storeAreaId) {
        this.storeAreaId = storeAreaId;
    }

    public Long getStoreAreaId() {
        return storeAreaId;
    }

    public void setStoreLocId(Long storeLocId) {
        this.storeLocId = storeLocId;
    }

    public Long getStoreLocId() {
        return storeLocId;
    }

    public void setCarrierWaveChipManufacturer(String carrierWaveChipManufacturer) {
        this.carrierWaveChipManufacturer = carrierWaveChipManufacturer;
    }

    public String getCarrierWaveChipManufacturer() {
        return carrierWaveChipManufacturer;
    }

    public void setCarrierWaveFreqScope(String carrierWaveFreqScope) {
        this.carrierWaveFreqScope = carrierWaveFreqScope;
    }

    public String getCarrierWaveFreqScope() {
        return carrierWaveFreqScope;
    }

    public void setCarrierWaveCenterFreq(String carrierWaveCenterFreq) {
        this.carrierWaveCenterFreq = carrierWaveCenterFreq;
    }

    public String getCarrierWaveCenterFreq() {
        return carrierWaveCenterFreq;
    }

    public void setCarrierWaveVer(String carrierWaveVer) {
        this.carrierWaveVer = carrierWaveVer;
    }

    public String getCarrierWaveVer() {
        return carrierWaveVer;
    }

    public void setCarrierModel(String carrierModel) {
        this.carrierModel = carrierModel;
    }

    public String getCarrierModel() {
        return carrierModel;
    }

    public void setCarrierWaveType(String carrierWaveType) {
        this.carrierWaveType = carrierWaveType;
    }

    public String getCarrierWaveType() {
        return carrierWaveType;
    }

    public void setMeterId(Long meterId) {
        this.meterId = meterId;
    }

    public Long getMeterId() {
        return meterId;
    }

    public void setOrderType(String orderType) {
        this.orderType = orderType;
    }

    public String getOrderType() {
        return orderType;
    }

    public void setInstDate(Date instDate) {
        this.instDate = instDate;
    }

    public Date getInstDate() {
        return instDate;
    }

    public void setRmvDate(Date rmvDate) {
        this.rmvDate = rmvDate;
    }

    public Date getRmvDate() {
        return rmvDate;
    }

    public void setChkDate(Date chkDate) {
        this.chkDate = chkDate;
    }

    public Date getChkDate() {
        return chkDate;
    }

    public void setDescardDate(Date descardDate) {
        this.descardDate = descardDate;
    }

    public Date getDescardDate() {
        return descardDate;
    }

    public void setCapitalSource(String capitalSource) {
        this.capitalSource = capitalSource;
    }

    public String getCapitalSource() {
        return capitalSource;
    }

    public void setModuleCode(String moduleCode) {
        this.moduleCode = moduleCode;
    }

    public String getModuleCode() {
        return moduleCode;
    }

    public String getWhNo() {
        return whNo;
    }

    public void setWhNo(String whNo) {
        this.whNo = whNo;
    }

    public String getWhName() {
        return whName;
    }

    public void setWhName(String whName) {
        this.whName = whName;
    }

    public String getWhAreaNo() {
        return whAreaNo;
    }

    public void setWhAreaNo(String whAreaNo) {
        this.whAreaNo = whAreaNo;
    }

    public String getWhAreaname() {
        return whAreaname;
    }

    public void setWhAreaname(String whAreaname) {
        this.whAreaname = whAreaname;
    }

    public String getStoreAreaNo() {
        return storeAreaNo;
    }

    public void setStoreAreaNo(String storeAreaNo) {
        this.storeAreaNo = storeAreaNo;
    }

    public String getStoreAreaName() {
        return storeAreaName;
    }

    public void setStoreAreaName(String storeAreaName) {
        this.storeAreaName = storeAreaName;
    }

    public String getStoreLocNo() {
        return storeLocNo;
    }

    public void setStoreLocNo(String storeLocNo) {
        this.storeLocNo = storeLocNo;
    }

    public String getStoreLocName() {
        return storeLocName;
    }

    public void setStoreLocName(String storeLocName) {
        this.storeLocName = storeLocName;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("concentratorId", getConcentratorId())
                .append("meterNo", getMeterNo())
                .append("madeNo", getMadeNo())
                .append("rfidNo", getRfidNo())
                .append("typeCode", getTypeCode())
                .append("modelCode", getModelCode())
                .append("collMode", getCollMode())
                .append("rvCode", getRvCode())
                .append("curStatusCode", getCurStatusCode())
                .append("belongDept", getBelongDept())
                .append("arrivalDate", getArrivalDate())
                .append("lotNo", getLotNo())
                .append("biddingNo", getBiddingNo())
                .append("manufactrer", getManufactrer())
                .append("madeDate", getMadeDate())
                .append("attachedMeter", getAttachedMeter())
                .append("prCode", getPrCode())
                .append("upChannelNo", getUpChannelNo())
                .append("downChannelNo", getDownChannelNo())
                .append("protocolCode", getProtocolCode())
                .append("referenceVoltCode", getReferenceVoltCode())
                .append("referenceCurrentCode", getReferenceCurrentCode())
                .append("wiringMode", getWiringMode())
                .append("whId", getWhId())
                .append("whAreaId", getWhAreaId())
                .append("storeAreaId", getStoreAreaId())
                .append("storeLocId", getStoreLocId())
                .append("carrierWaveChipManufacturer", getCarrierWaveChipManufacturer())
                .append("carrierWaveFreqScope", getCarrierWaveFreqScope())
                .append("carrierWaveCenterFreq", getCarrierWaveCenterFreq())
                .append("carrierWaveVer", getCarrierWaveVer())
                .append("carrierModel", getCarrierModel())
                .append("carrierWaveType", getCarrierWaveType())
                .append("meterId", getMeterId())
                .append("orderType", getOrderType())
                .append("instDate", getInstDate())
                .append("rmvDate", getRmvDate())
                .append("chkDate", getChkDate())
                .append("descardDate", getDescardDate())
                .append("capitalSource", getCapitalSource())
                .append("moduleCode", getModuleCode())
                .toString();
    }
}
